home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48_2 / disasm.tar / disasm / dobj.c < prev    next >
C/C++ Source or Header  |  1990-04-25  |  989b  |  68 lines

  1. #include "dis48.h"
  2. #include <fcntl.h>
  3.  
  4. void
  5. #ifdef ANSI
  6. StuffNybble(char *mem, NAddr addr, Nybble n)
  7. #else
  8. StuffNybble(mem, addr, n)
  9. char    *mem;
  10. NAddr    addr;
  11. Nybble    n;
  12. #endif
  13. {
  14.     char    t;
  15.     
  16.     t = mem[addr >> 1] & ((addr & 1) ? 0x0f : 0xf0);
  17.     n &= 0xf;
  18.     if (addr & 1)
  19.         n <<= 4;
  20.         
  21.     mem[addr >> 1] = t | n;
  22. }
  23.  
  24. #define NSIZE 524288
  25. #define BSIZE (NSIZE / 2)
  26.  
  27. Bitmap    completed;
  28. int    dopause = 0;
  29.  
  30. #ifdef ANSI
  31. main(int argc, char **argv)
  32. #else
  33. main(argc, argv)
  34. int    argc;
  35. char    **argv;
  36. #endif
  37. {
  38.     char    *p;
  39.     int    n;
  40.     NAddr    a;
  41.     char    buf[80];
  42.     char    mem[80];
  43.  
  44.     while (1) {
  45.         fprintf(stderr, "?\n");
  46.         if (fgets(buf, sizeof(buf), stdin) == NULL)
  47.             break;
  48.             
  49.         for (a = 0, p = buf; (*p != '\n') && (*p != '\0'); a++, p++) {
  50.             if ((*p >= '0') && (*p <= '9'))
  51.                 *p -= '0';
  52.             
  53.             else if ((*p >= 'A') && (*p <= 'F'))
  54.                 *p -= 'A' - 10;
  55.                 
  56.             else if ((*p >= 'a') && (*p <= 'f'))
  57.                 *p -= 'a' - 10;
  58.                 
  59.             StuffNybble(mem, a, *p);
  60.         }
  61.             
  62.         Object(mem, 0, buf);
  63.         printf("%s\n", buf);
  64.     }
  65.     
  66.     exit(0);
  67. }
  68.